package com.linran.wxpublic.domain.xml;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 普通文本消息
 *
 * @author lin
 * @date 2020-08-19 15:40
 */
@Data
@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class WeChatRequest {
    /**
     * 开发者微信号
     */
    @JacksonXmlProperty(localName = "ToUserName")
    private String toUserName;
    /**
     * 发送方账号(一个OpenID)
     */
    @JacksonXmlProperty(localName = "FromUserName")
    private String fromUserName;
    /**
     * 消息创建时间
     */
    @JacksonXmlProperty(localName = "CreateTime")
    private Long createTime;
    /**
     * 消息类型，文本:text,图片:image,语音:voice,视频:vide,小视频:shortvideo,地理位置:location,连接:link,事件:event
     */
    @JacksonXmlProperty(localName = "MsgType")
    private String msgType;
    @JacksonXmlProperty(localName = "Content")
    private String content;
    /**
     * 图片连接由系统生成
     */
    @JacksonXmlProperty(localName = "PicUrl")
    private String picUrl;
    /**
     * 媒体id，可以调用获取临时素材接口拉取数据
     */
    @JacksonXmlProperty(localName = "MediaId")
    private String mediaId;
    /**
     * 语音格式:amr,speex等
     */
    @JacksonXmlProperty(localName = "Format")
    private String format;
    /**
     * 语音识别文字结果,UTF-8编码
     */
    @JacksonXmlProperty(localName = "Recognition")
    private String recognition;
    /**
     * 视频消息缩略图的媒体id，可以调用多媒体文件下载接口拉取数据
     */
    @JacksonXmlProperty(localName = "ThumbMediaId")
    private String thumbMediaId;
    /**
     * 消息id，64位整型
     */
    @JacksonXmlProperty(localName = "MsgId")
    private Long msgId;
    /*地理位置*/
    /**
     * 地理位置纬度
     */
    @JacksonXmlProperty(localName = "Location_X")
    private BigDecimal locationX;
    /**
     * 地理位置经度
     */
    @JacksonXmlProperty(localName = "Location_Y")
    private BigDecimal locationY;
    /**
     * 地图缩放大小
     */
    @JacksonXmlProperty(localName = "Scale")
    private Integer scale;
    /**
     * 地理位置信息
     */
    @JacksonXmlProperty(localName = "Lable")
    private String label;
    /*连接消息*/
    /**
     * 地理位置
     */
    @JacksonXmlProperty(localName = "Title")
    private String title;
    /**
     * 消息描述
     */
    @JacksonXmlProperty(localName = "Description")
    private String description;
    /**
     * 消息连接
     */
    @JacksonXmlProperty(localName = "Url")
    private String url;
    /*事件*/
    /**
     * 事件类型，subscribe(订阅)、unsubscribe(取消订阅)
     */
    @JacksonXmlProperty(localName = "Event")
    private String event;
}
